{\blur10\fad(200,200)\pos(1911.111,230.741)}翻译/压制/字幕制作:HAF半个水果
{\blur10\fad(200,200)\pos(1834.371,1895.407)}使用AI工具翻译,如有不准确的地方请在弹幕或评论区指正,谢谢!\N
!!真的有人看不到这行字!!
{\blur10\fad(200,200)\pos(1948.149,255.852)}翻译质量权威评价:原来25年就有小拉即用机翻糊弄人了
{\blur10\fad(200,200)\pos(1878.075,316.889)}♥本视频在Enderman频道会员有效期内翻译♥
Are you unsatisfied with your public IP address at home?
是否因为大公司霸占着最酷的子网段而陷入存在主义危机?
Do you have an existential crisis because the biggest corporations own the coolest subnets?
小心了 你可能都没意识到自家子网里的IP地址其实超带感!
本期视频将彻底改变你的人生 给你那糟糕的公网IP一个应得的逆袭机会
This is the video that'll turn your life around and give your horrible public IP the second chance it deserves.
the IP address above it is 10 billion and 1
and the IP below it is 100 million and 1.
What exactly do I mean by this?
The IP address is actually an integer
Which means there are only approximately 4 billion IP addresses in total.
这就是为什么我们需要网络地址转换(NAT)和本地子网
This is why we have network address translation and local subnets
because there are clearly more than 4 billion devices on planet earth
and we need to identify them online somehow.
This is also why you can theoretically express the IP address as a number
{\pos(1934.815,1732.963)}从1数到40多亿就能穷尽所有可能的地址
and you can count to 4 billion and something and essentially list every single IP address out there.
{\fad(200,200)\pos(1911.111,2024.444)}你手指头够多时才能数到四十亿
The dots are there for convenience sake only
{\fad(200,200)\pos(1922.962,382.963)}八位组
they separate so-called octets
basically dividing a 32-bit number into 4 equal 8-bit parts.
{\fad(200,200)\pos(1896.296,1417.037)}每个八位组为一个字节(8比特),IP地址的整数值是通过按位连接得出的
{\fad(200,200)\pos(1813.333,1873.333)}“和” 运算符分别表示左移和右移
The largest 8-bit number is 2 to the power of 8
That's how many 8-bit numbers there are.
{\fad(200,200)\pos(1831.111,1837.777)}8位只能表示256个数字的原因在于,每个位仅有2种状态且共有8个这样的位
{\pos(1943.704,1812.964)}这就是为什么IP地址各段数值不能超过255
This is why the IP address octets cannot be larger than 255.
{\fad(200,200)\pos(1958.518,2015.555)}这个梗总是让我尴尬,因为那根本不是IPv4地址...
which means we can always access the IP addresses by supplying their integer values.
这意味着Cloudflare的1.1.1.1 IP地址其实很糟糕
That means the Cloudflare Quad-1 IP sucks
because in reality it's 16
It does look better in hexadecimal
because every two hexadecimal characters represent a byte
and the octets are bytes.
Who counts in hexadecimal though?
{\pos(1931.852,1629.259)}人类普遍使用十进制系统
Humans use the decimal system
{\fad(200,200)\pos(1917.036,2021.481)}不过我的确以十进制计数。真不明白为什么我们不直接改用十二进制,它实在优越太多了
{\pos(1952.593,1641.111)}所以从定义上来说 最美的IP地址应该是十进制中1后面跟着一串零
so the most beautiful IP address by definition are 1 followed by many zeros in decimal.
{\pos(1917.037,1620.37)}因为最后8位比特在这种情况下永远为零
because the last 8 bits will always be zero in that case.
{\fad(200,200)\pos(1943.703,584.444)}还有一个有趣的事实是,这种特性仅在数值达到1亿时才开始出现,\N
这也是首个符合该条件的有效IP地址。此时十进制系统在最后8位二进制数上\N
终于追平了十六进制,因为十进制比十六进制少了6个额外数字
{\pos(1917.037,1611.481)}于是我们取该子网的第一个IP视作美观地址
So we'll take the first IP from that subnet and consider it beautiful.
There is a little contradiction in everything I said though.
I wonder if you've noticed it.
If there are only 4 billion IPv4 addresses
then how is one of them 10 billion and one?
Now the reasoning is simple.
I make content about Windows.
而Windows是完美无瑕的操作系统 绝无任何漏洞
And Windows is a great operating system without any bugs whatsoever.
这里出现十亿级IP的原因是...是...整数溢出!
What took place for that IP address to become 10 billion here is... is... an integer overflow!
I accidentally discovered that when working on a premise for this video
so I had to whip out a disassembler to see what's going on there.
快速分析发现ping.exe调用了RtlIPv4StringToAddressW函数
A quick analysis uncovered ping.exe calling the RtlIPv4StringToAddressW function.
So then I reverse engineered it and found where the integer overflow occurs.
I don't think it's significant
More interestingly though
I discovered that every octet is processed separately
enabling one of the most unholy addresses I've ever seen to get pinged.
And you don't even need 4 octets to complete the IP address
unless the strict argument is set to true
Which makes it even more disgusting.
The erratics can be 8 too
just prepend a zero before the number.
{\pos(1934.815,1753.704)}天知道 我花了好久反编译Windows的ping程序
{\fad(200,200)\pos(1955.555,2009.629)}显然,那些不规范的IP地址在Linux和MacOS系统上同样有效
{\pos(1958.518,1691.481)}借助整数溢出
{\pos(1943.704,1694.444)}每个子网IP都能变得很美妙
every subnet IP is beautiful.
{\pos(1934.815,1694.444)}但我至今没搞清它的生效机制
But I still have no clue when it works and when it doesn't.
{\fad(200,200)\fs100\pos(1887.407,2045.185)}除了仅在Windows上存在的溢出漏洞外,任何使用RtlIpv4StringToAddressW()的代码都可能受其影响
There are only 2 truly beautiful IPs
100 million and 1 billion.
10 billion will only work with an integer overflow
and 10 million isn't enough to fill in the first high-order octet.
that is a valid IP address
Probably has ICMP turned off.
{\pos(2219.259,1861.482)}*ICMP(Internet Control Message Protocol)Internet控制报文协议\N
控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息*
is every digit from 0 to 9.
If you own that IP address or a subnet
Time to sell it for 20 billion dollars.
Forget remembering the octets
{\pos(1946.667,1694.444)}说不定有更优雅的IP表示法
there might be an even better representation of your IP address.
{\pos(1946.667,1694.444)}都能直接操作十进制IP了 谁还需要DNS?
Who needs DNS when we can just raw-dock decimal IPs?
{\fad(200,200)\pos(1955.555,2060)}查看描述即可了解你的IP地址是否超棒!
That's what we should celebrate instead of corpo-quad-octets.
{\blur10\fad(200,200)\pos(1947.407,427.852)}原标题:Why your IP address is (probably) awesome 原作者:Enderman\N
原视频上传日期:2025年8月26日
{\blur90\fad(200,200)\fscx185\fscy188\pos(1885.333,840)}在 Youtube 上关注
{\blur10\fad(200,200)\pos(1909.333,1220)}翻译/压制/字幕制作:HAF半个水果\N
翻译质量权威评价:原来25年就有小拉即用机翻糊弄人了
{\blur10\fad(200,200)\pos(1889.334,1336)}♥本视频在Enderman频道会员有效期内翻译♥\N
如果你喜欢这个视频,请多多支持和评论哒~ o((>ω< ))o\N
字幕制作不易,喜欢的话支持一下我吧!